package com.yizisu.basemvvm.mvvm.mvvm_helper

import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.OnLifecycleEvent


/**
 * 若红楼梦空，亦初心不变
 * 作者：thinker
 * 包名：com.yizisu.basemvvm.mvvm
 * 时间：2019/3/27 11:21
 * 描述：
 */
interface WithParamsLifecycleObserver : LifecycleObserver {
    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreate(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResume(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun onPause(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者最多需要一个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    fun onDestroy(lifecycleOwner: LifecycleOwner) {
    }

    /**
     * 可以不需要参数
     * 或者需要一个参数
     * 或者最多两个参数
     */
    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    fun onLifeChange(lifecycleOwner: LifecycleOwner, event: Lifecycle.Event) {
    }
}